package com.tedu.day02.oop;

/**
 * 继承关系---多态星
 * 作用:父子级关系，实现方法互通（重写）
 * 用法： 引用 instanceof 类名
 */
class     A1 {
    public void tell1() {
        System.out.println("A 你号 ，我是tell1");
    }

    public void tell2() {
        System.out.println("A 你好  我是tell2");
    }
}
    class B1 extends A1{
        public void tell2(){
            System.out.println("B 你好 我是tell2");
        }
                   public void tell3(){
            System.out.println("B 你好  我是tell3");
        }
    }


public class 多态 {
    public static void main(String[] args) {
      /*  //创建B1对象--创建1个对象  子类【不存在多态，没有造型】
             A1 b=new B1();
        A1 a=b;    //子类交给父类保存  向上造型
        //实现方法的互通  调用父类与子类的方法
        a.tell1();  //父类中方法
        a.tell2();   //重写：方法互通 */

        //向下造型：实现方法互通调用父类与子类的方法
        //①先向上造型1次  父类的引用指向子类的对象
        A1 a=new B1();
        //②子类接受，向上造型1次引用，并且强转
        B1 b=(B1)a;
                b.tell3();//子类的方法
        b.tell2();//重写：父类的方法  输出子类
        b.tell1();//子类的方法

    }
}
